#pragma once
#include "igamestate.h"
#include "../SGD Wrappers/CSGD_Direct3D.h"
#include "../SGD Wrappers/CSGD_TextureManager.h"
#include "../SGD Wrappers/CSGD_DirectInput.h"
#include "../SGD Wrappers/CSGD_XAudio2.h"
#include "../DeadlyShadowsLastHope/ObjectFactory.h"
#include "../DeadlyShadowsLastHope/ObjectManager.h"
#include "../Bitmap Font/BitmapFont.h"

class CCreditState : public IGameState
{
public:
	static CCreditState* GetInstance();
//IGameState Interface======================
	virtual void Enter(void);
	virtual void Update(float fElapsedTime);
	virtual void Exit(void);
	virtual void Render(void);
	virtual bool Input(void);
//==========================================
	int GetMove(void) const { return m_nMove; }
	void SetMove(int m) { m_nMove = m; }

private:
//trilogy of evil===========================
	CCreditState(void);
	virtual ~CCreditState(void);
	CCreditState(const CCreditState&);
	CCreditState& operator=(const CCreditState&);

	CSGD_Direct3D*			m_pD3D;
	CSGD_TextureManager*	m_pTM;
	CSGD_DirectInput*		m_pDI;
	CSGD_XAudio2*			m_pXA;
	CObjectManager*			m_pOM;
	
	CBitmapFont				m_pFont;
	int						m_nMove;
	int						m_nScreenWidth;
	int						m_nScreenHeight;
	int						m_nBackGroundImageID;
	float					m_fFPSTimer;
	unsigned int			m_unFrames;
	unsigned int			m_unFPS;
};

